package com.examination.api.administrator;


import com.examination.framework.model.response.QueryResponseResult;
import com.examination.framework.model.response.ResponseResult;
import com.examination.system.administration.Employee;
import com.examination.system.administration.ext.IdentityCardAuthenticationInformation;
import com.examination.system.administration.response.AddAdministrationResult;
import com.examination.system.administration.response.DeleteAdministrationResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

import java.text.ParseException;
import java.util.concurrent.Callable;

/**
 * 员工 个人信息录入
 * @author 寇淇芮
 * @Date 2019/9/18 17:10
 */
@Api(value = "员工个人信息录入",description = "提供个人信息增删改查")
public interface EmployeeControllerApi {
    @ApiOperation("查询每页的结果")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page",value = "页码",dataType = "string",paramType = "path",required = true),
            @ApiImplicitParam(name = "size",value = "显示的条数",dataType = "string",paramType = "path",required = true)
    })
     public Callable<QueryResponseResult<Employee>> findEmployeeList(Integer page, Integer size);

    @ApiOperation("添加员工信息")
    @ApiImplicitParam(name = "employee",value = "员工信息",required = true,dataType = "Employee",paramType = "body")
    AddAdministrationResult addEmployee(Employee employee) throws ParseException;

    @ApiOperation("删除员工信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "employeeId",value = "员工id",paramType = "path",dataType ="string" ,required = true),
            @ApiImplicitParam(name = "employee",value = "员工信息",paramType = "body",dataType = "Employee",required = true)
    })
    DeleteAdministrationResult deleteEmployeeById(String employeeId, Employee employee);

    @ApiOperation("修改员工信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "employeeId",value = "员工id",paramType = "path",dataType ="string" ,required = true),
            @ApiImplicitParam(name = "employee",value = "员工信息",paramType = "body",dataType = "Employee",required = true)
    })
    ResponseResult editEmployeeById(String employeeId, Employee employee);

    @ApiOperation("身份证验证是否存在")
    @ApiImplicitParam(name="IDNumber",value = "身份证号",paramType = "path",dataType = "String",required = true)
    IdentityCardAuthenticationInformation identityCardVerificationById(String IDNumber);

    @ApiOperation("验证手机号是否真确")
    @ApiImplicitParam(name="cellPhoneNumber",value = "手机号",paramType = "path",dataType = "String",required = true)
    ResponseResult checkCellPhoneNumber(String cellPhoneNumber);
    //上传图片
    @ApiOperation("更新信息")
    @ApiImplicitParam(name = "employee",value = "员工信息",paramType = "body",dataType = "Employee",required = true)
    AddAdministrationResult  updateEmployee(Employee employee);

    @ApiOperation("查询员工单个信息")
    @ApiImplicitParam(name = "employeeId",value = "员工id",paramType = "path",dataType = "String",required = true)
    Employee findEmployeeById(String employeeId);
}
